package br.com.comdoc.entidade;

//@author Jorge

import java.sql.Date;
import java.util.Objects;


public class Proposta {
    
    private int id;
    private Login idlogin;
    private Empresa idEmpresa;
    private PropostaProduto idPropostaProduto1;
    private PropostaProduto idPropostaProduto2;
    private PropostaProduto idPropostaProduto3;
    private PropostaProduto idPropostaProduto4;
    private PropostaProduto idPropostaProduto5;
    private PropostaProduto idPropostaProduto6;
    private PropostaProduto idPropostaProduto7;
    private PropostaProduto idPropostaProduto8;
    private PropostaProduto idPropostaProduto9;
    private PropostaProduto idPropostaProduto10;
    private String tipoProposta;
    private String tempoSLA;
    private float valorTotalMensal;
    private String garantia;
    private String condicoesPagamento;
    private float valorTotal;
    private Date data;
    private Date validade;
    private boolean status;   

    public Proposta(int id, Login idlogin, Empresa idEmpresa, PropostaProduto idPropostaProduto1, 
            PropostaProduto idPropostaProduto2, PropostaProduto idPropostaProduto3, 
            PropostaProduto idPropostaProduto4, PropostaProduto idPropostaProduto5, 
            PropostaProduto idPropostaProduto6, PropostaProduto idPropostaProduto7, 
            PropostaProduto idPropostaProduto8, PropostaProduto idPropostaProduto9, 
            PropostaProduto idPropostaProduto10, String tipoProposta, String tempoSLA, 
            float valorTotalMensal, String garantia, String condicoesPagamento, 
            float valorTotal, Date data, Date validade, boolean status) {
        this.id = id;
        this.idlogin = idlogin;
        this.idEmpresa = idEmpresa;
        this.idPropostaProduto1 = idPropostaProduto1;
        this.idPropostaProduto2 = idPropostaProduto2;
        this.idPropostaProduto3 = idPropostaProduto3;
        this.idPropostaProduto4 = idPropostaProduto4;
        this.idPropostaProduto5 = idPropostaProduto5;
        this.idPropostaProduto6 = idPropostaProduto6;
        this.idPropostaProduto7 = idPropostaProduto7;
        this.idPropostaProduto8 = idPropostaProduto8;
        this.idPropostaProduto9 = idPropostaProduto9;
        this.idPropostaProduto10 = idPropostaProduto10;
        this.tipoProposta = tipoProposta;
        this.tempoSLA = tempoSLA;
        this.valorTotalMensal = valorTotalMensal;
        this.garantia = garantia;
        this.condicoesPagamento = condicoesPagamento;
        this.valorTotal = valorTotal;
        this.data = data;
        this.validade = validade;
        this.status = status;
    }

    public Proposta(Login idlogin, Empresa idEmpresa, PropostaProduto idPropostaProduto1, 
            PropostaProduto idPropostaProduto2, PropostaProduto idPropostaProduto3, 
            PropostaProduto idPropostaProduto4, PropostaProduto idPropostaProduto5, 
            PropostaProduto idPropostaProduto6, PropostaProduto idPropostaProduto7, 
            PropostaProduto idPropostaProduto8, PropostaProduto idPropostaProduto9, 
            PropostaProduto idPropostaProduto10, String tipoProposta, String tempoSLA, 
            float valorTotalMensal, String garantia, String condicoesPagamento, 
            float valorTotal, Date data, Date validade) {
        this.idlogin = idlogin;
        this.idEmpresa = idEmpresa;
        this.idPropostaProduto1 = idPropostaProduto1;
        this.idPropostaProduto2 = idPropostaProduto2;
        this.idPropostaProduto3 = idPropostaProduto3;
        this.idPropostaProduto4 = idPropostaProduto4;
        this.idPropostaProduto5 = idPropostaProduto5;
        this.idPropostaProduto6 = idPropostaProduto6;
        this.idPropostaProduto7 = idPropostaProduto7;
        this.idPropostaProduto8 = idPropostaProduto8;
        this.idPropostaProduto9 = idPropostaProduto9;
        this.idPropostaProduto10 = idPropostaProduto10;
        this.tipoProposta = tipoProposta;
        this.tempoSLA = tempoSLA;
        this.valorTotalMensal = valorTotalMensal;
        this.garantia = garantia;
        this.condicoesPagamento = condicoesPagamento;
        this.valorTotal = valorTotal;
        this.data = data;
        this.validade = validade;
    }

    public Proposta() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Login getIdlogin() {
        return idlogin;
    }

    public void setIdlogin(Login idlogin) {
        this.idlogin = idlogin;
    }

    public Empresa getIdEmpresa() {
        return idEmpresa;
    }

    public void setIdEmpresa(Empresa idEmpresa) {
        this.idEmpresa = idEmpresa;
    }

    public PropostaProduto getIdPropostaProduto1() {
        return idPropostaProduto1;
    }

    public void setIdPropostaProduto1(PropostaProduto idPropostaProduto1) {
        this.idPropostaProduto1 = idPropostaProduto1;
    }

    public PropostaProduto getIdPropostaProduto2() {
        return idPropostaProduto2;
    }

    public void setIdPropostaProduto2(PropostaProduto idPropostaProduto2) {
        this.idPropostaProduto2 = idPropostaProduto2;
    }

    public PropostaProduto getIdPropostaProduto3() {
        return idPropostaProduto3;
    }

    public void setIdPropostaProduto3(PropostaProduto idPropostaProduto3) {
        this.idPropostaProduto3 = idPropostaProduto3;
    }

    public PropostaProduto getIdPropostaProduto4() {
        return idPropostaProduto4;
    }

    public void setIdPropostaProduto4(PropostaProduto idPropostaProduto4) {
        this.idPropostaProduto4 = idPropostaProduto4;
    }

    public PropostaProduto getIdPropostaProduto5() {
        return idPropostaProduto5;
    }

    public void setIdPropostaProduto5(PropostaProduto idPropostaProduto5) {
        this.idPropostaProduto5 = idPropostaProduto5;
    }

    public PropostaProduto getIdPropostaProduto6() {
        return idPropostaProduto6;
    }

    public void setIdPropostaProduto6(PropostaProduto idPropostaProduto6) {
        this.idPropostaProduto6 = idPropostaProduto6;
    }

    public PropostaProduto getIdPropostaProduto7() {
        return idPropostaProduto7;
    }

    public void setIdPropostaProduto7(PropostaProduto idPropostaProduto7) {
        this.idPropostaProduto7 = idPropostaProduto7;
    }

    public PropostaProduto getIdPropostaProduto8() {
        return idPropostaProduto8;
    }

    public void setIdPropostaProduto8(PropostaProduto idPropostaProduto8) {
        this.idPropostaProduto8 = idPropostaProduto8;
    }

    public PropostaProduto getIdPropostaProduto9() {
        return idPropostaProduto9;
    }

    public void setIdPropostaProduto9(PropostaProduto idPropostaProduto9) {
        this.idPropostaProduto9 = idPropostaProduto9;
    }

    public PropostaProduto getIdPropostaProduto10() {
        return idPropostaProduto10;
    }

    public void setIdPropostaProduto10(PropostaProduto idPropostaProduto10) {
        this.idPropostaProduto10 = idPropostaProduto10;
    }

    public String getTipoProposta() {
        return tipoProposta;
    }

    public void setTipoProposta(String tipoProposta) {
        this.tipoProposta = tipoProposta;
    }

    public String getTempoSLA() {
        return tempoSLA;
    }

    public void setTempoSLA(String tempoSLA) {
        this.tempoSLA = tempoSLA;
    }

    public float getValorTotalMensal() {
        return valorTotalMensal;
    }

    public void setValorTotalMensal(float valorTotalMensal) {
        this.valorTotalMensal = valorTotalMensal;
    }

    public String getGarantia() {
        return garantia;
    }

    public void setGarantia(String garantia) {
        this.garantia = garantia;
    }

    public String getCondicoesPagamento() {
        return condicoesPagamento;
    }

    public void setCondicoesPagamento(String condicoesPagamento) {
        this.condicoesPagamento = condicoesPagamento;
    }

    public float getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(float valorTotal) {
        this.valorTotal = valorTotal;
    }

    public Date getData() {
        return data;
    }

    public void setData(Date data) {
        this.data = data;
    }

    public Date getValidade() {
        return validade;
    }

    public void setValidade(Date validade) {
        this.validade = validade;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "Proposta{" + "id=" + id + ", "
                + "idlogin=" + idlogin + ", "
                + "idEmpresa=" + idEmpresa + ", "
                + "idPropostaProduto1=" + idPropostaProduto1 + ", "
                + "idPropostaProduto2=" + idPropostaProduto2 + ", "
                + "idPropostaProduto3=" + idPropostaProduto3 + ", "
                + "idPropostaProduto4=" + idPropostaProduto4 + ", "
                + "idPropostaProduto5=" + idPropostaProduto5 + ", "
                + "idPropostaProduto6=" + idPropostaProduto6 + ", "
                + "idPropostaProduto7=" + idPropostaProduto7 + ", "
                + "idPropostaProduto8=" + idPropostaProduto8 + ", "
                + "idPropostaProduto9=" + idPropostaProduto9 + ", "
                + "idPropostaProduto10=" + idPropostaProduto10 + ", "
                + "tipoProposta=" + tipoProposta + ", "
                + "tempoSLA=" + tempoSLA + ", "
                + "valorTotalMensal=" + valorTotalMensal + ", "
                + "garantia=" + garantia + ", "
                + "condicoesPagamento=" + condicoesPagamento + ", "
                + "valorTotal=" + valorTotal + ", "
                + "data=" + data + ", "
                + "validade=" + validade + ", "
                + "status=" + status + '}';
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 89 * hash + this.id;
        hash = 89 * hash + Objects.hashCode(this.idlogin);
        hash = 89 * hash + Objects.hashCode(this.idEmpresa);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto1);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto2);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto3);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto4);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto5);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto6);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto7);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto8);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto9);
        hash = 89 * hash + Objects.hashCode(this.idPropostaProduto10);
        hash = 89 * hash + Objects.hashCode(this.tipoProposta);
        hash = 89 * hash + Objects.hashCode(this.tempoSLA);
        hash = 89 * hash + Float.floatToIntBits(this.valorTotalMensal);
        hash = 89 * hash + Objects.hashCode(this.garantia);
        hash = 89 * hash + Objects.hashCode(this.condicoesPagamento);
        hash = 89 * hash + Float.floatToIntBits(this.valorTotal);
        hash = 89 * hash + Objects.hashCode(this.data);
        hash = 89 * hash + Objects.hashCode(this.validade);
        hash = 89 * hash + (this.status ? 1 : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Proposta other = (Proposta) obj;
        if (this.id != other.id) {
            return false;
        }
        if (!Objects.equals(this.idlogin, other.idlogin)) {
            return false;
        }
        if (!Objects.equals(this.idEmpresa, other.idEmpresa)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto1, other.idPropostaProduto1)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto2, other.idPropostaProduto2)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto3, other.idPropostaProduto3)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto4, other.idPropostaProduto4)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto5, other.idPropostaProduto5)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto6, other.idPropostaProduto6)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto7, other.idPropostaProduto7)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto8, other.idPropostaProduto8)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto9, other.idPropostaProduto9)) {
            return false;
        }
        if (!Objects.equals(this.idPropostaProduto10, other.idPropostaProduto10)) {
            return false;
        }
        if (!Objects.equals(this.tipoProposta, other.tipoProposta)) {
            return false;
        }
        if (!Objects.equals(this.tempoSLA, other.tempoSLA)) {
            return false;
        }
        if (Float.floatToIntBits(this.valorTotalMensal) != Float.floatToIntBits(other.valorTotalMensal)) {
            return false;
        }
        if (!Objects.equals(this.garantia, other.garantia)) {
            return false;
        }
        if (!Objects.equals(this.condicoesPagamento, other.condicoesPagamento)) {
            return false;
        }
        if (Float.floatToIntBits(this.valorTotal) != Float.floatToIntBits(other.valorTotal)) {
            return false;
        }
        if (!Objects.equals(this.data, other.data)) {
            return false;
        }
        if (!Objects.equals(this.validade, other.validade)) {
            return false;
        }
        if (this.status != other.status) {
            return false;
        }
        return true;
    }
    
    
    
    
}